/**
 * Time：2024.04.28
 * Content：互斥量死锁问题
 * Author：Qian You
 */
#include <iostream>
#include <bits/stdc++.h>
// 头文件
#include <thread>
using namespace std;

mutex m1, m2;

void func1(){
    m1.lock();
    m2.lock();
    m1.unlock();
    m2.unlock();
}

void func2(){
    // 调整前
    // m2.lock();
    // m1.lock();
    // m2.unlock();
    // m1.unlock();

    // 调整后
    m1.lock();
    m2.lock();
    m1.unlock();
    m2.unlock();
}

int main(){
    thread t1(func1);
    thread t2(func2);
    t1.join();
    t2.join();
    cout<<"over"<<endl;
    return 0;
}